package br.ufu.wcm.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

import br.com.caelum.vraptor.ioc.Component;
import br.ufu.wcm.model.Fornecedor;
import br.ufu.wcm.model.Produto;
import br.ufu.wcm.model.ProdutoFornecedor;

@Component
public class ProdutoFornecedorDao extends GenericDaoHibernateImpl<ProdutoFornecedor, Long> {

	public ProdutoFornecedorDao(Session session) {
		super(session, ProdutoFornecedor.class);
	}

	@SuppressWarnings("unchecked")
	public List<Fornecedor> buscarFornecedorPorProduto(Produto produto) {
		Criteria criteria = session.createCriteria(ProdutoFornecedor.class);
		
		criteria.add(Restrictions.eq("produto", produto));
		
		criteria.setProjection(Projections.property("fornecedor"));
		
		return criteria.list();
	}

}
